package com.meirengu.webview.service;

import com.meirengu.model.Result;
import com.meirengu.utils.HttpUtil.HttpResult;
import com.meirengu.webview.model.CheckCode;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 验证码服务接口类
 *
 * @author Marvin
 * @create 2017-01-12 下午3:06
 */
@Service
public interface CheckCodeService {

    /**
     * 生成验证码
     */
    int generate();

    /**
     * 发送验证码
     */
    HttpResult send(String mobile, int code, String ip, String type);

    /**
     * 保存验证码
     */
    int create(CheckCode checkCode);

    /**
     * 修改验证码
     */
    int update(CheckCode checkCode);

    /**
     * 获取验证码
     */
    CheckCode retrieve(String mobile, int code);

    Result singleSend(String mobile, int code, String ip, String type) throws Exception;

    /**
     * 获取规定时间内的验证码
     *
     * @return
     * @throws Exception
     */
    int getCount(Map map) throws Exception;

    /**
     * 获取一小时内的短信验证码获取排行
     *
     * @param map
     * @return
     * @throws Exception
     */
    List<Map<String, Object>> getMobileCount(Map map) throws Exception;

}
